Multi-modal interface in a voice-activated network

ABSTRACT

Systems and methods of the present technical solution enable a multi-modal interface for voice-based devices, such as digital assistants. The solution can enable a user to interact with video and other content through a touch interface and through voice commands. In addition to inputs such as stop and play, the present solution can also automatically generate annotations for displayed video files. From the annotations, the solution can identify one or more break points that are associated with different scenes, video portions, or how-to steps in the video. The digital assistant can receive input audio signal and parse the input audio signal to identify semantic entities within the input audio signal. The digital assistant can map the identified semantic entities to the annotations to select a portion of the video that corresponds to the users request in the input audio signal.

BACKGROUND

Computing devices can provide digital content to networked clientdevices. Excessive network transmissions may be required to findspecific location or content within the provided digital content.Additional, voice-based interfaces may not be capable of moving tospecific locations within the digital content, which can result inwasted network resources as the entity of the digital content istransmitted to the network client device.

SUMMARY

According to at least one aspect of the disclosure, a system to controldigital components in a voice-activated system can include a dataprocessing system. The data processing system can include one or moreprocessors and a memory. The data processing system can execute anatural language processor (“NLP”) component, an annotation component,and a parsing component. The natural language processor component canreceive a first input audio signal that is detected by a sensor at aclient computing device. The natural language processor component canparse the first input audio signal to identify a first digital componentrequest in the first input audio signal. The annotation component cangenerate a first set of annotations of the first digital component basedat least on speech recognized in the first digital component. Theparsing component can identify a plurality of break points based on atleast the first set of annotations. The natural language processorcomponent can receive a second input audio signal that is detected bythe sensor at the client computing device. The natural languageprocessor component can parse the second input audio signal to identifya term in the second input audio signal. The parsing component canselect a break point from the plurality of break points based on theterm. The parsing component can transmit a portion of the first digitalcomponent corresponding to the break point.

According to at least one aspect of the disclosure, a method to controldigital components in a voice-activated system can include receiving, bya natural language processor component executed by a data processingsystem and via an interface of the data processing system, a first inputaudio signal detected by a sensor at a client computing device. Themethod can include parsing, by the natural language processor component,the first input audio signal to identify a first digital componentrequest in the first input audio signal. The method can includegenerating, by an annotation component executed by the data processingsystem, a first set of annotations of the first digital component basedat least on speech recognized in the first digital component. The methodcan include identifying, by a parsing component executed by the dataprocessing system, a plurality of break points based on at least thefirst set of annotations. The method can include receiving, by naturallanguage processor component, a second input audio signal detected bythe sensor at the client computing device. The method can includeparsing, by the natural language processor component, the second inputaudio signal to identify a term in the second input audio signal. Themethod can include selecting, by the parsing component, a break pointfrom the plurality of break points based on the term. The method caninclude transmitting, by the parsing component to the client computingdevice, a portion of the first digital component corresponding to thebreak point.

These and other aspects and implementations are discussed in detailbelow. The foregoing information and the following detailed descriptioninclude illustrative examples of various aspects and implementations andprovide an overview or framework for understanding the nature andcharacter of the claimed aspects and implementations. The drawingsprovide illustration and a further understanding of the various aspectsand implementations and are incorporated in and constitute a part ofthis specification.

BRIEF DESCRIPTION OF THE DRAWINGS

The accompanying drawings are not intended to be drawn to scale. Likereference numbers and designations in the various drawings indicate likeelements. For purposes of clarity, not every component may be labeled inevery drawing. In the drawings:

FIG. 1 illustrates an example system to control digital components in avoice-activated system, in accordance with an example of the presentdisclosure.

FIG. 2 illustrates a block diagram of an example representation of adigital component over time, in accordance with an example of thepresent disclosure.

FIG. 3 illustrates a block diagram of an example method to controldigital components in a voice-activated system, in accordance with anexample of the present disclosure.

FIG. 4 illustrates a client computing device at a first point in timeand during a second point in time during the method illustrated in FIG.3, in accordance with an example of the present disclosure.

FIG. 5 illustrates a block diagram of an example computer system, inaccordance with an example of the present disclosure.

DETAILED DESCRIPTION

Following below are more detailed descriptions of various conceptsrelated to, and implementations of, methods, apparatuses, and systems oftransferring data in a secure processing environment. The variousconcepts introduced above and discussed in greater detail below may beimplemented in any of numerous ways.

The present disclosure is generally directed controlling digitalcomponents in a voice-activated system. Interfaces for presenting videocan include inputs that mimic electro-mechanical playback devices (e.g.,VCRs), and include buttons such as stop, play, fast forward, and rewind.Interacting with these limited inputs with a voice-activated system canbe difficult. Additionally, the difficulty in interacting with the videocontent make it difficult for users to select and watch only portions ofvideo content. Difficulty in finding and watching only the desiredportions of video content can result in computational and network wasteas the end user may often watch or download the whole video contentrather than only the needed portions.

Systems and methods of the present technical solution enable amulti-modal interface for voice-based devices, such as digitalassistants. The solution can enable a user to interact with video andother content through a touch interface and through voice commands. Inaddition to inputs such as stop and play, the present solution can alsoautomatically generate annotations for displayed video files. From theannotations, the solution can identify one or more break points that areassociated with different scenes, video portions, or how-to steps in thevideo. The digital assistant can receive input audio signal and parsethe input audio signal to identify semantic entities within the inputaudio signal. The digital assistant can map the identified semanticentities to the annotations to select a portion of the video thatcorresponds to the users request in the input audio signal. The digitalassistant can then jump to the selected portion of the video. Enablingthe user of a voice-based digital assistant to search for specificcontent within a video can reduce computational and network resources byenabling users to skip to the requested portion of the video, enablingonly portions of the video to be transmitted over the network ratherthan the whole video. The present solution also provides the user with anew interface for interacting in with video on voice-based devices.

FIG. 1 illustrates an example system 100 to control digital componentsin a voice-activated system. The system 100 can include a digitalcomponent selection infrastructure. The system 100 can include a dataprocessing system 102. The data processing system 102 can communicatewith one or more of a digital component provider device 106 (e.g.,content provider device) or client computing devices 104 via a network105. The network 105 can include computer networks such as the Internet,local, wide, metro, or other area networks, intranets, satellitenetworks, and other communication networks such as voice or data mobiletelephone networks. The network 105 can be used to access informationresources such as web pages, web sites, domain names, or uniformresource locators that can be presented, output, rendered, or displayedon at least one computing device 104, such as a laptop, desktop, tablet,digital assistant, personal digital assistant, smartwatch, wearabledevice, smart phone, portable computers, or speaker. For example, viathe network 105 a user of the client computing device 104 can accessinformation or data provided by a digital component provider device 106.The client computing device 104 may or may not include a display. Forexample, the client computing device 104 may include limited types ofuser interfaces, such as a microphone and speaker (e.g., the clientcomputing device 104 can include a voice-drive or audio-basedinterface). The primary user interface of the computing device 104 maybe a microphone and speaker.

The network 105 can include or constitute a display network, e.g., asubset of information resources available on the internet that areassociated with a content placement or search engine results system, orthat are eligible to include third party digital components. The network105 can be used by the data processing system 102 to access informationresources such as web pages, web sites, domain names, or uniformresource locators that can be presented, output, rendered, or displayedby the client computing device 104. For example, via the network 105 auser of the client computing device 104 can access information or dataprovided by the digital component provider device 106.

The network 105 may be any type or form of network and may include anyof the following: a point-to-point network, a broadcast network, a widearea network, a local area network, a telecommunications network, a datacommunication network, a computer network, an ATM (Asynchronous TransferMode) network, a SONET (Synchronous Optical Network) network, a SDH(Synchronous Digital Hierarchy) network, a wireless network and awireline network. The network 105 may include a wireless link, such asan infrared channel or satellite band. The topology of the network 105may include a bus, star, or ring network topology. The network mayinclude mobile telephone networks using any protocol or protocols usedto communicate among mobile devices, including advanced mobile phoneprotocol (“AMPS”), time division multiple access (“TDMA”), code-divisionmultiple access (“CDMA”), global system for mobile communication(“GSM”), general packet radio services (“GPRS”), or universal mobiletelecommunications system (“UMTS”). Different types of data may betransmitted via different protocols, or the same types of data may betransmitted via different protocols.

The system 100 can include at least one data processing system 102. Thedata processing system 102 can include at least one logic device such asa computing device having a processor to communicate via the network105, for example, with the computing device 104 or the digital componentprovider device 106. The data processing system 102 can include at leastone computation resource, server, processor or memory. For example, thedata processing system 102 can include a plurality of computationresources or servers located in at least one data center. The dataprocessing system 102 can include multiple, logically-grouped serversand facilitate distributed computing techniques. The logical group ofservers may be referred to as a data center, server farm or a machinefarm. The servers can also be geographically dispersed. A data center ormachine farm may be administered as a single entity, or the machine farmcan include a plurality of machine farms. The servers within eachmachine farm can be heterogeneous—one or more of the servers or machinescan operate according to one or more type of operating system platform.

Servers in the machine farm can be stored in high-density rack systems,along with associated storage systems, and located in an enterprise datacenter. For example, consolidating the servers in this way may improvesystem manageability, data security, the physical security of thesystem, and system performance by locating servers and high performancestorage systems on localized high performance networks. Centralizationof all or some of the data processing system 102 components, includingservers and storage systems, and coupling them with advanced systemmanagement tools allows more efficient use of server resources, whichsaves power and processing requirements and reduces bandwidth usage.

The client computing device 104 can include, execute, interface, orotherwise communicate with one or more of at least one local digitalassistant 134, at least one sensor 138, at least one transducer 140, atleast one audio driver 142, or at least one display 144. The sensor 138can include, for example, a camera, an ambient light sensor, proximitysensor, temperature sensor, accelerometer, gyroscope, motion detector,GPS sensor, location sensor, microphone, video, image detection, ortouch sensor. The transducer 140 can include or be part of a speaker ora microphone. The audio driver 142 can provide a software interface tothe hardware transducer 140. The audio driver 142 can execute the audiofile or other instructions provided by the data processing system 102 tocontrol the transducer 140 to generate a corresponding acoustic wave orsound wave. The display 144 can include one or more hardware or softwarecomponent configured to provide a visual indication or optical output,such as a light emitting diode, organic light emitting diode, liquidcrystal display, laser, or display.

The local digital assistant 134 can include or be executed by one ormore processors, logic array, or memory. The local digital assistant 134can detect a keyword and perform an action based on the keyword. Thelocal digital assistance 134 can be an instance of the remote digitalassistance component 112 executed at the data processing system 102 orcan perform any of the functions of the remote digital assistancecomponent 112. The local digital assistant 134 can filter out one ormore terms or modify the terms prior to transmitting the terms as datato the data processing system 102 (e.g., remote digital assistantcomponent 112) for further processing. The local digital assistant 134can convert the analog audio signals detected by the transducer 140 intoa digital audio signal and transmit one or more data packets carryingthe digital audio signal to the data processing system 102 via thenetwork 105. The local digital assistant 134 can transmit data packetscarrying some or all of the input audio signal responsive to detectingan instruction to perform such transmission. The instruction caninclude, for example, a trigger keyword or other keyword or approval totransmit data packets comprising the input audio signal to the dataprocessing system 102.

The local digital assistant 134 can perform a pre-filtering orpre-processing on the input audio signal to remove certain frequenciesof audio. The pre-filtering can include filters such as a low-passfilter, high-pass filter or a bandpass filter. The filters can beapplied in the frequency domain. The filters can be applied usingdigital signal processing techniques. The filter can be configured tokeep frequencies that correspond to a human voice or human speech whileeliminating frequencies that fall outside the typical frequencies ofhuman speech. For example, a bandpass filter can be configured to removefrequencies below a first threshold (e.g., 70 Hz, 75 Hz, 80 Hz, 85 Hz,90 Hz, 95 Hz, 100 Hz, or 105 Hz) and above a second threshold (e.g., 200Hz, 205 Hz, 210 Hz, 225 Hz, 235 Hz, 245 Hz, or 255 Hz). Applying abandpass filter can reduce computing resource utilization in downstreamprocessing. The local digital assistant 134 on the computing device 104can apply the bandpass filter prior to transmitting the input audiosignal to the data processing system 102, thereby reducing networkbandwidth utilization. However, based on the computing resourcesavailable to the computing device 104 and the available networkbandwidth, it may be more efficient to provide the input audio signal tothe data processing system 102 to allow the data processing system 102to perform the filtering.

The local digital assistant 134 can apply additional pre-processing orpre-filtering techniques such as noise reduction techniques to reduceambient noise levels that can interfere with natural language processor.Noise reduction techniques can improve accuracy and speed of the naturallanguage processor, thereby improving the performance of the dataprocessing system 102 and manage rendering of a graphical user interfaceprovided via the display 144.

The client computing device 104 can be associated with an end user thatenters voice queries as audio input into the client computing device 104(via the sensor 138 or transducer 140) and receives audio (or other)output from the data processing system 102 or digital component providerdevice 106 to present, display, or render to the end user of the clientcomputing device 104. The digital component can include acomputer-generated voice that can be provided from the data processingsystem 102 or digital component provider device 106 to the clientcomputing device 104. The client computing device 104 can render thecomputer-generated voice to the end user via the transducer 140 (e.g., aspeaker). The computer-generated voice can include recordings from areal person or computer-generated language. The client computing device104 can provide visual output via a display device 144 communicativelycoupled to the computing device 104.

The end user that enters the voice queries to the client computingdevice 104 can be associated with multiple client computing devices 104.For example, the end user can be associated with a first clientcomputing device 104 that can be a speaker-based digital assistantdevice, a second client computing device 104 that can be a mobile device(e.g., a smartphone), and a third client computing device 104 that canbe a desktop computer. The data processing system 102 can associate eachof the client computing devices 104 through a common login, location,network, or other linking data. For example, the end user may log intoeach of the client computing devices 104 with the same account user nameand password.

The client computing device 104 can receive an input audio signaldetected by a sensor 138 (e.g., microphone) of the computing device 104.The input audio signal can include, for example, a query, question,command, instructions, or other statement provided in a language. Theinput audio signal can include an identifier or name of a third-party(e.g., a digital component provider device 106) to which the question orrequest is directed.

The client computing device 104 can include, execute, or be referred toas a digital assistant device. The digital assistant device can includeone or more components of the computing device 104. The digitalassistant device can include a graphics driver that can receive displayoutput from the data processing system 102 and render the display outputon display 132. The graphics driver can include hardware or softwarecomponents that control or enhance how graphics or visual output isdisplayed on the display 144. The graphics driver can include, forexample, a program that controls how the graphic components work withthe rest of the computing device 104 (or digital assistant). The localdigital assistant 134 can filter the input audio signal to create afiltered input audio signal, convert the filtered input audio signal todata packets, and transmit the data packets to a data processing systemcomprising one or more processors and memory.

The digital assistant device can include an audio driver 142 and aspeaker component (e.g., transducer 140). The pre-processor component140 receives an indication of the display output and instructs the audiodriver 142 to generate an output audio signal to cause the speakercomponent (e.g., transducer 140) to transmit an audio outputcorresponding to the indication of the display output.

The system 100 can include, access, or otherwise interact with at leastdigital component provider device 106. The digital component providerdevice 106 can include one or more servers that can provide digitalcomponents to the client computing device 104 or data processing system102. The digital component provider device 106 or components thereof canbe integrated with the data processing system 102 or executed at leastpartially by the data processing system 102. The digital componentprovider device 106 can include at least one logic device such as acomputing device having a processor to communicate via the network 105,for example with the computing device 104, the data processing system102, or the digital component provider device 106. The digital componentprovider device 106 can include at least one computation resource,server, processor, or memory. For example, the digital componentprovider device 106 can include a plurality of computation resources orservers located in at least one data center.

A digital component provider device 106 can provide audio, visual, ormultimedia-based digital components for presentation by the clientcomputing device 104 as an audio output digital component, visual outputdigital components, or a mix thereof. The digital component can be orinclude a digital content. The digital component can be or include adigital object. The digital component can include subscription-basedcontent or pay-for content. A digital component can include a pluralityof digital content items. For example, a digital component can be a datastream from a streaming music service (e.g., the digital componentprovider device 106). The digital components can include or can bedigital movies, websites, songs, applications (e.g., smartphone or otherclient device applications), or other text-based, audio-based,image-based, or video-based content. For example, the digital componentscan be how-to videos, movies, or other video provided by the digitalcontent provider device 106 to the client computing device 104. Thedigital content provider device 106 can provide digital componentsgenerated by the digital content provider device 106, uploaded by users,or sources from other digital content provider devices 106.

The digital component provider device 106 can provide the digitalcomponents to the client computing device 104 via the network 105 andbypass the data processing system 102. The digital component providerdevice 106 can provide the digital component to the client computingdevice 104 via the network 105 and data processing system 102. Forexample, the digital component provider device 106 can provide thedigital components to the data processing system 102, which can storethe digital components and provide the digital components to the clientcomputing device 104 when requested by the client computing device 104.

The data processing system 102 can include at least one computationresource or server. The data processing system 102 can include,interface, or otherwise communicate with at least one interface 110. Thedata processing system 102 can include, interface, or otherwisecommunicate with at least one remote digital assistant component 112.The remote digital assistant component 112 can include, interface, orotherwise communicate with at least one natural language processorcomponent 114. The data processing system 102 can include, interface, orotherwise communicate with at least one digital component selector 120.The data processing system 102 can include, interface, or otherwisecommunicate with at least one annotation component 135. The dataprocessing system 102 can include, interface, or otherwise communicatewith at least one parsing component 116. The data processing system 102can include, interface, or otherwise communicate with at least one datarepository 124. The at least one data repository 124 can include orstore, in one or more data structures or databases, sets of annotations126, break points 128, caption data 130, and content data 132. The datarepository 124 can include one or more local or distributed databases,and can include a database management

The interface 110, remote digital assistant component 112, the naturallanguage processor component 114, the digital component selector 120,the annotation component 135, and the parsing component 116 can eachinclude at least one processing unit or other logic device such asprogrammable logic array engine, or module configured to communicatewith the database repository or database 124. The interface 110, theremote digital assistant component 112, the natural language processorcomponent 114, the digital component selector 120, the annotationcomponent 135, the parsing component 116, and the data repository 124can be separate components, a single component, or part of multiple dataprocessing systems 102. The system 100 and its components, such as adata processing system 102, can include hardware elements, such as oneor more processors, logic devices, or circuits.

The data processing system 102 can include an interface 110. Theinterface 110 can be configured, constructed, or operational to receiveand transmit information using, for example, data packets. The interface110 can receive and transmit information using one or more protocols,such as a network protocol. The interface 110 can include a hardwareinterface, software interface, wired interface, or wireless interface.The interface 110 can facilitate translating or formatting data from oneformat to another format. For example, the interface 110 can include anapplication programming interface that includes definitions forcommunicating between various components, such as software components.

The data processing system 102 can include an application, script, orprogram installed at the client computing device 104, such as a localdigital assistant 134 to communicate input audio signals to theinterface 110 of the data processing system 102 and to drive componentsof the client computing device to render output audio signals or visualoutput. The data processing system 102 can receive data packets, adigital file, or other signals that include or identify an input audiosignal (or input audio signals). The computing device 104 can detect theaudio signal via the transducer 140 and convert the analog audio signalto a digital file via an analog-to-digital converter. For example, theaudio driver 142 can include an analog-to-digital converter component.The pre-processor component 140 can convert the audio signals to adigital file that can be transmitted via data packets over network 105.

The remote digital assistant component 112 of the data processing system102 can execute or run an NLP component 114 to receive or obtain thedata packets including the input audio signal detected by the sensor 138of the computing device 104. The client computing device 104 can alsoexecute an instance of the client computing device 104 to processlanguage and text at the client computing device 104. The data packetscan provide a digital file. The NLP component 114 can receive or obtainthe digital file or data packets comprising the audio signal and parsethe audio signal. For example, the NLP component 114 can provide forinteractions between a human and a computer. The NLP component 114 canbe configured with techniques for understanding natural language andenabling the data processing system 102 to derive meaning from human ornatural language input. The NLP component 114 can include or beconfigured with techniques based on machine learning, such asstatistical machine learning. The NLP component 114 can utilize decisiontrees, statistical models, or probabilistic models to parse the inputaudio signal.

The NLP component 114 can perform, for example, functions such as namedentity recognition (e.g., given a stream of text, determine which itemsin the text map to proper names, such as people or places, and what thetype of each such name is, such as person, location, or organization),natural language generation (e.g., convert information from computerdatabases or semantic intents into understandable human language),natural language understanding (e.g., convert text into more formalrepresentations such as first-order logic structures that a computermodule can manipulate), machine translation (e.g., automaticallytranslate text from one human language to another), morphologicalsegmentation (e.g., separating words into individual morphemes andidentify the class of the morphemes, which can be challenging based onthe complexity of the morphology or structure of the words of thelanguage being considered), question answering (e.g., determining ananswer to a human-language question, which can be specific oropen-ended), and semantic processing (e.g., processing that can occurafter identifying a word and encoding its meaning in order to relate theidentified word to other words with similar meanings). The NLP component114 can identify semantic representations of the identified words. Byidentifying semantic representations, the data processing system canmatch words or phrases based on their similar semantic meanings ratherthan specific word matches. For example, a search of an input text basedon semantic representations can return the synonyms to a searched wordrather just the occurrences of only the searched word.

The NLP component 114 can convert the input audio signal into recognizedtext by comparing the input signal against a stored, representative setof audio waveforms (e.g., in the data repository 124) and choosing theclosest matches. The set of audio waveforms can be stored in datarepository 124 or other database accessible to the data processingsystem 102. The representative waveforms are generated across a largeset of users, and then may be augmented with speech samples from theuser. After the audio signal is converted into recognized text, the NLPcomponent 114 matches the text to words that are associated, for examplevia training across users or through manual specification, with actionsthat the data processing system 102 can serve. The NLP component 114 canconvert image or video input to text or digital files. For example, theNLP component 114 can detect the speech in a video file, convert thespeech into text, and then process the text. The NLP component 114 canidentify or receive closed caption data in the video files and processthe closed caption data to recognize the text or perform semanticanalysis on the closed caption data. The NLP component 114 can store theclosed caption data for each of the digital components as caption data130 in the data repository 124. The NLP component 114 can convert theNLP component 114 can process, analyze, or interpret image or videoinput to perform actions, generate requests, or select or identify datastructures.

The data processing system 102 can receive image or video input signals,in addition to, or instead of, input audio signals. The data processingsystem 102 can process the image or video input signals using, forexample, image interpretation techniques, computer vision, a machinelearning engine, or other techniques to recognize or interpret the imageor video to convert the image or video to a digital file. The one ormore image interpretation techniques, computer vision techniques, ormachine learning techniques can be collectively referred to as imagingtechniques. The data processing system 102 (e.g., the NLP component 114)can be configured with the imaging techniques, in addition to, orinstead of, audio processing techniques.

The NLP component 114 can obtain the input audio signal. From the inputaudio signal, the NLP component 114 can identify at least one request orat least one trigger keyword corresponding to the request. The requestcan indicate intent, digital components, or subject matter of the inputaudio signal. The trigger keyword can indicate a type of action likelyto be taken. For example, the NLP component 114 can parse the inputaudio signal to identify at least one request to skip to a specific partof a video file. The trigger keyword can include at least one word,phrase, root or partial word, or derivative indicating an action to betaken. For example, the trigger keyword “go,” “go to,” or “skip” toindicate the end user wants to view a specific portion of the videofile.

The NLP component 114 can parse the input audio signal to identify,determine, retrieve, or otherwise obtain a request for digitalcomponents. The digital components can be video-based files, such asstreaming movies, shows, or other video files. For instance, the NLPcomponent 114 can apply a semantic processing technique to the inputaudio signal to identify the requested digital component. The NLPcomponent 114 can apply the semantic processing technique to the inputaudio signal to identify a trigger phrase that includes one or moretrigger keywords, such as a first trigger keyword and a second triggerkeyword. For example, the input audio signal can include the sentence“Play a video of fixing a bike.” The NLP component 114 can determinethat the input audio signal includes a trigger keyword “play.” The NLPcomponent 114 can determine that the request is for a digital component(e.g., a video) of a bike being fixed.

The remote digital assistant component 112 of the data processing system102 can execute or run an instance of the annotation component 135 togenerate sets of annotations for digital components. The annotationcomponent 135 can generate sets of annotations for the digitalcomponents that are transmitted to the client computing device 104 forpresentations. An annotation set can include one or more annotations forthe whole digital component (e.g., video file) or one or moreannotations for each of the scenes or steps identified in the digitalcomponent. The parsing component 116 can use the annotation sets todetermine the meaning, semantic meaning, or connect contained within thedigital component or scene of the digital component. The parsingcomponent 116 can use the annotation sets to match requests in inputaudio signals to the scenes or steps identified in a digital component.The annotation component 135 can store the annotations as annotationsets 126 in the data repository. The annotation sets 126 can be storedin a data structure or database that identifies the digital component,break point, scene, video portion, or any combination thereof with whichthe annotation set 126 is associated.

The annotation component 135 can generate a set of annotations based onspeech recognized or text recognized in the digital component. Forexample, the digital component can be a video and the NLP component 114can extract and process the speech from the video. Based on the speechcontent of the video, the annotation component can determine the contentof the video and flag keywords. For example, in a how-to video theannotation component can flag the names of tools or specific materials.In this example, if the end user provides the input audio signal “whattools do I need to perform this task” when watching the how-to video,using the annotations, the data processing system can present theportion of the how-to video where the video discusses tools to the enduser. The annotation component 135 can generate a set of annotationsbased on the closed caption data associated with the digital component.The set of annotation can include a list of the words spoken during thedigital component or a portion thereof. The parsing component 116 canperform keyword searches to match keywords identified in an input audiosignal with the terms spoken during the digital component or portionthereof. The set of annotations can include a semantic meaning orrepresentation of the terms or phrases in the digital component. The setof annotations can indicate a semantic meaning for each scene or portionof the digital component.

The annotation component 135 can generate a set of annotations based onimages in the digital component. The annotation component 135 canextract frames or image from an image-based or video-based digitalcomponent. The annotation component 135 can perform image recognition onthe images. The set of annotations based on an image can include adatabase of objects identified in the digital component and the timepoint at which the identified object occurs in the digital component.The annotation component 135 can also detect transitions in video-baseddigital components. The transitions can be, for example, changes inscenes or fades to black. The transitions can denote the change from afirst scene to a second scene. The set of annotations can indicate whattype of transition was identified in the digital component and the timepoint at which the transition occurred in the digital component.

The annotation component 135 can generate a set of annotations based oninput from a second client computing device 104 or digital contentprovider device 106. For example, the digital component can be providedby a digital content provider device 106 or by an end user of the secondclient computing device 104. The provider of the digital component canannotate the digital component and transmit the annotations as a set ofannotations to the data processing system 102. The set of annotationsfrom the provider can include time points in the digital component thatindicate the beginning of scenes or steps in a video, keywords, or tagsassigned to different portions of the digital component, or the locationof defined break points. For example, the owner or creator of thedigital component (e.g., a video) can set the location of break pointsin the meta data of the digital component to identify each of the stepsdiscussed in the digital component.

The remote digital assistant component 112 of the data processing system102 can execute or run an instance of the parsing component 116 to parsethe digital component into different portions based on the sets ofannotations generated by the annotation component 135. Parsing thedigital components can include dividing the digital component intoseparate digital components. For example, the parsing component 116 candivide a video into a plurality of smaller videos. Each of the smallervideos may include a single scene or step included in the originalvideo. Parsing the digital components can include determining breakpoints in the digital component. A portion of the digital component canbe defined as between two break points (or the beginning of the file anda first break point for the first portion of the digital component andthe end of the file and the last break point for the last portion of thedigital component). The parsing component 116 can set the break pointsbased on the sets of annotations. For example, the parsing component 116can set the break points at the transition between scenes. The parsingcomponent 116 can set a plurality of break points within a single scene.For example, a single scene may cover a single topic in a how-to video.The portion of the how-to video containing the scene of the single topiccan be defined by two break points. The parsing component 116 can alsoinclude a plurality of break points within the scene that indicatedifferent steps taken during the scene. The parsing component 116 canset the break points using machine learning and natural languageprocessing to identify locations in the digital components that maycorrespond to different steps in a video, transitions in a video, oruseful phrases. For example, the parsing component 116 can identifyannotations that may be helpful or identifiable in the digitalcomponent, such as a listing of ingredients, a listing of tools, or aspecific type of scene (e.g., a car chase scene), and set break pointsat those locations. The parsing component 116 can also set the breakpoints based on viewing history of the digital component. For example,if only a subportion of a video is typically viewed by users, theparsing component 116 can identify the subportion as an important orrelevant portion of the video and can set a break point near thebeginning of the subportion. The parsing component 116 can determine oridentify each of the break points for a digital component. The parsingcomponent 116 can save the break points as break points 128 in the datarepository 124. The break points 128 can be a database that stores thetime points of each of the break points in association with anindication of the digital component. The break points can be set at setintervals within the digital component. For example, the parsingcomponent 116 can set a break point every 5, 10, 15, 20, 25, 30, or 60minutes of the digital component.

The digital component selector 120 can select a digital component thatincludes text, strings, characters, video files, image files, or audiofiles that can be processed by the client computing device 104 andpresented to the user via the display 144 or the transducer 140 (e.g.,speaker). The digital component selector 120 can select a digitalcomponent that is responsive to the request identified by the NLPcomponent 114 in the input audio signal. For a given request, thedigital component selector 120 can select supplemental digitalcomponents that can also be provided with a primary digital component.The primary digital component can be a digital component directlyselected responsive to a request. For example, the primary digitalcomponent can be the how-to video requested by the user. Thesupplemental digital components can be an additional digital componentthat provide additional information or are related to the primarydigital component.

The digital component selector 120 can select which digital componentprovider device 106 should or can fulfill the request and can forwardthe request to the digital component provider device 106. For example,the data processing system 102 can initiate a session between thedigital component provider device 106 and the client computing device104 to enable the digital component provider device 106 to transmit thedigital component to the client computing device 104. The digitalcomponent selector 120 can request digital component from the digitalcomponent provider device 106. The digital component provider device 106can provide digital components to the data processing system 102, whichcan store the digital components in the data repository 124. Responsiveto a request for a digital component, the digital component selector 120can retrieve the digital component from the data repository 124. Inresponse to a request for a digital component, the digital componentselector 120 can select a portion or all of a digital component toprovide the client computing device 104 in response to the request.

The digital component selector 120 can select multiple digitalcomponents via a real-time content selection process. The digitalcomponent selector 120 can score and rank the digital components andprovide multiple digital components to the output merger component 120to allow the output merger component 120 to select the highest rankingdigital component. The digital component selector 120 can select one ormore additional digital components that are transmitted to a secondclient computing device 104 based on an input audio signal (or keywordsand requests contained therein). In one example, the input audio signalcan include a request to start a streaming how-to video. The digitalcomponent selector 120 can select additional digital components (e.g.,ads). The additional digital components can be transmitted to the clientcomputing device 104 as the digital component selector 120 streams thehow-to video to the client computing device 104. The additional digitalcomponents can inform an end user of additional or related digitalcomponent provider devices 106 that could fulfill the request from thefirst client computing device 104.

The digital component selector 120 can provide the selected digitalcomponent selected in response to the request identified in the inputaudio signal to the computing device 104 or local digital assistant 134or application executing on the computing device 104 for presentation.Thus, the digital component selector 120 can receive the content requestfrom the client computing device 104, select, responsive to the contentrequest, a digital component, and transmit, to the client computingdevice 104, the digital component for presentation. The digitalcomponent selector 120 can transmit, to the local digital assistant 134,the selected digital component for presentation by the local digitalassistant 134 itself or a third-party application executed by the clientcomputing device 104. For example, the local digital assistant 134 canplay or output an audio signal corresponding to the selected digitalcomponent.

The data repository 124 store content data 132 that can include, forexample, digital components provided by a digital component providerdevice 106 or obtained or determined by the data processing system 102to facilitate content selection. The content data 132 can include, forexample, digital components (or digital component object) that caninclude, for example, a content item, an online document, audio, images,video, multimedia content, or third-party content. The digital componentprovider device 106 can provide full-length digital components to thedata processing system 102 to store as content data 132. The digitalcomponent provider device 106 can provide portions of the digitalcomponents to the data processing system 102.

FIG. 2 illustrates a block diagram of an example representation ofdigital component 200 over time. The digital component 200 can be avideo-based digital component, such as a how-to video. The dataprocessing system can identify a plurality of portions 201(1)-201(5),which can generally be referred to as portions 201. The data processingsystem can identify a plurality of break points 202(1)-202(4), which cangenerally be referred to as break points 202. The data processing systemcan also define a break point 202 at the beginning and at the end of thedigital component.

Each of the portions 201 can be defined between two break points 202.For example, portion 201(2) is defined as the time between break point202(1) and break point 202(2). The data processing system can select thetime at which each of the break points 202 located based on the sets ofannotations generated by the annotation component. The break point202(1) may correspond to the start of an instructional portion of thedigital component 200. The break point 202(2) may correspond to a firsthow-to step of the digital component 200.

FIG. 3 illustrates a block diagram of an example method 300 to controldigital components in a voice-activated system. The method 300 caninclude receiving an input signal (ACT 302). The method 300 can includeparsing the input signal (ACT 304). The method 300 can includegenerating a set of annotations (ACT 306). The method 300 can includeidentifying break points (ACT 308). The method 300 can include receivingan input signal (ACT 310) and parsing the input signal (ACT 312). Themethod 300 can include selecting a break point (ACT 314). The method 300can include transmitting a portion of a digital component (ACT 316).

As set forth above, the method 300 can include receiving an input signal(ACT 302). The method 300 can include receiving, by a natural languageprocessor component executed by a data processing system, the inputsignal. The input signal can be an input audio signal that is detectedby a sensor at a first client device. The sensor can be a microphone ofthe first client device. For example, a digital assistant componentexecuted at least partially by a data processing system that includesone or more processors and memory can receive the input audio signal.The input audio signal can include a conversation facilitated by adigital assistant. The conversation can include one or more inputs andoutputs. The conversation can be audio-based, text-based, or acombination of audio and text. The input audio signal can include textinput, or other types of input that can provide conversationalinformation. The data processing system can receive the audio input fora session corresponding to the conversation. The data processing systemcan receive the audio input in one or more portions or as a bulk orbatch upload (e.g., multiple portions of the conversations uploaded in asingle transmission to reduce the number of transmissions).

The method 300 can include parsing the input signal (ACT 304). The NLPcomponent of the data processing system can parse the input signal toidentify a digital component request. The NLP component can identify atrigger keyword in the input signal. For example, the input audio signalcan include “OK, show me how to fix my bike.” The NLP component canparse the input signal to determine the request is for a how-to videoshowing how to fix a bike. The NLP component can determine that thetrigger keyword is to play, which can indicate that the end user wantsto start streaming and playing the video to the client computing device.The client computing device can also provide the digital componentrequest to the data processing system in a text form. For example, theend user can use a physical or digital keyboard associated with theclient computing device to type a request for a specific video or otherfile.

Also referring to FIG. 4, among others, FIG. 4 illustrates a clientcomputing device 104 at a first point in time 401 and during a secondpoint in time 402 during the acts of the method 300. The clientcomputing devices 104 illustrated in FIG. 4 illustrates an example userinterface that is presented to an end user on the display 144. The userinterface is a conversational, voice-based interface. For example,inputs from the user are displayed as starting toward the right side ofthe display 144 and inputs (or responses) from the data processingsystem are displayed starting toward the left side of the display 144.New inputs or responses are added to the bottom of the conversation—nearthe bottom of the display 144. As the new inputs or responses are added,the older inputs and responses are scrolled toward the top of thedisplay 144. For example, at time 402 a portion of the inputs visible attime 401 have been scrolled off the visible portion of the display 144.

As illustrated in FIG. 4, the client computing device 104 can detect aninput audio signal that includes the phrase “how do I fix my bike?” Theinput audio signal can be processed by the NLP component 114 to extractthe text of the input audio signal. The text 403 of the input audiosignal can be displayed to the user as confirmation that the clientcomputing device 104 (and data processing system 102) understood andcorrectly processed the input audio signal. The data processing systemcan select a digital component 404 in response to the request identifiedin the input audio signal. In the example illustrated in FIG. 4, thedigital component 404 includes a video component 405 and a textcomponent 406.

The method 300 can include generating a set of annotations (ACT 306).The annotation component 135 can generate one or more sets ofannotations for the selected digital component. The NLP component 114can process the speech contained in the digital component or closedcaption data in or associated with the digital component to generate oneor more of the sets of annotations. The annotation component 135 cangenerate one or more sets of annotations based on objects identified inthe digital component. For example, the data processing system 102 canperform object recognition on the video frames in the digital componentto identify objects in the digital component. The annotation component135 can generate a set of annotations based on transitions (e.g., videofade ins or video fade outs) within the digital component. The NLPcomponent 114 can generate semantic representations of the speech ortext within the digital component. The annotation component 135 cangenerate a set of annotations based on the semantic representations. Theannotation component 135 can cluster the semantic representationstogether to determine which portions of the digital component arerelated to a specific topic or step. For example, for a digitalcomponent that is a how-to video of how to fix a bike, the annotationcomponent 135 can use semantic representations to identify portions ofthe how-to video that illustrates the changing of a tire and portions ofthe how-to video that illustrates how to change the chain of the bike.The annotation component 135 can generate a set of annotations thatindicates the time portion of the how-to video where tire changing isdiscussed and the portion of the how-to video where chain changing isdiscussed.

The method 300 can include identifying break points (ACT 308). The dataprocessing system 102 can identify the break points based on one or moreof the generated sets of annotations. The break points can identify thetime points of key frames within the video. The break points canidentify scene transitions, the start of each step in a how-to video,the points of interest in the video, the entrance or exit of objectsinto the video.

An indication of one or more of the break points can be transmitted tothe client computing device 104. Also referring to FIG. 4, among others,the indication of the break points can be included in digital component407 and transmitted to the client computing device 104. The clientcomputing device 104 can render the digital component 407 to display alist or indication of the breakpoints the data processing system 102determined are present in the video component 405. The annotationcomponent 135 can generate a label for each of the break points. Forexample, as illustrated in FIG. 4, the data processing system 102transmitted a digital component to the client computing device 104 thatincluded an indication of three break points. The break points werelabeled “Step 1,” “Step 2,” and “Step 3,” and can correspond to astarting time point of step 1, step 2, and step 3, respectively, in thevideo component 405.

The method 300 can also include the data processing system 102 selectingone or more supplemental or additional digital components in addition tothe primary digital component identified in response to the input audiosignal. For example, the supplemental digital components can be relatedto the same topic, provide additional information related to the primarydigital component, or can prompt the end user for more input. Alsoreferring to FIG. 4, among others, the data processing system 102selected and transmitted an additional digital component 408 to theclient computing device 104. The client computing device 104 can renderand present the additional digital component 408 with the primarydigital component 404. The additional digital component 308 can be an adfor a service provider or content related to the digital component 404.

The method 300 can include receiving an input signal (ACT 310). Theinput signal can be a second input audio signal. The second input audiosignal can be detected by the sensor (e.g., microphone) of the clientcomputing device 104. The method 300 can include parsing the inputsignal (ACT 312). The NLP component 114 can parse the second input audiosignal to identify a keyword, term, or semantic representation withinthe second input audio signal. For example, and also referring to FIG.4, the second input audio signal can include the phrase “show fixing thechain.” The client computing device 104 can display the text 409 fromthe second input audio signal. The NLP component 114 can parse thesecond input audio signal to identify keywords, such as “show” in theabove example phase. The NLP component 114 can identify that, based onthe keyword “show,” the use would like to a specific portion of thevideo component 405. The NLP component 114 can identify that the enduser wants to see the portion of the video component 405 thatcorresponds to the steps in the video of fixing the bike's chain.

The method 300 can include selecting a break point (ACT 314). The dataprocessing system 102 can select the break point from the plurality ofbreak points generated based on the one or more sets of annotations ofthe digital component. The data processing system 102 can select thebreak point based on the keyword, term, or semantic representationidentified in the second input audio signal. The data processing system102 can match or associate the keyword, term, or semantic representationwith annotations corresponding to each portion of the digital componentor each of the plurality of break points.

In the example illustrated in FIG. 4, the user provided the second inputaudio signal that includes the phrase “show fixing the chain.” Thesecond input audio signal can include a request for a specific breakpoint. For example, the client computing device 104 rendered the digitalcomponent 407 that presented to the user a plurality of break points.The second input audio signal can identify or be associated with a breakpoint not previously represented to the end user. For example, asillustrated in FIG. 4, the second input audio signal “show fixing thechain” is not a selection of one of the break points: “step 1,” “step2,” or “step 3.” When the second input audio signal does not include aspecific selection of a break point, the data processing system 102 canmatch or associate the keyword, term, or semantic representationidentified in the second input audio signal with annotationscorresponding to one of the portions of the digital component or to oneof the plurality of break points. For example, the term “chain” can bematched or associated with a portion of the video component 405 in whichthe annotation component 135 identified a chain as an object in thevideo or where the text or semantic meaning of the speech in the portionof the video correspond to a chain.

The method 300 can include transmitting a portion of the digitalcomponent (ACT 316). The transmitted portion of the digital componentcan correspond to selected break point. The portion of the digitalcomponent can be transmitted to the client computing device 104 withinstructions that cause the client computing device 104 to automaticallystart playing or rending the transmitted portion of the digitalcomponent. For example, and referring to FIG. 4, the data processingsystem 102 can select the break point that corresponds to the startingof the portion that illustrates how to change a chain on a bike. Theclient data processing system 102 can transmit the selected portion tothe data processing system, and the data processing system 102 can beginrendering the portion of the video component that illustrates how tochange the chain of the bike. Transmitting a portion of the digitalcomponent can also include transmitting an indication of the timeassociated with the selected break point to the client computing device104. For example, the client computing device 104 may have previouslyreceived the entity of the digital component. When a break point isselected, the time associated with the break point can be transmitted tothe client computing device 104 and the client computing device 104 canskip to the time in the video associated with the break point.

FIG. 5 illustrates a block diagram of an example computer system 500.The computer system or computing device 500 can include or be used toimplement the system 100, or its components such as the data processingsystem 102. The data processing system 102 can include an intelligentpersonal assistant or voice-based digital assistant. The computingsystem 500 includes a bus 505 or other communication component forcommunicating information and a processor 510 or processing circuitcoupled to the bus 505 for processing information. The computing system500 can also include one or more processors 510 or processing circuitscoupled to the bus for processing information. The computing system 500also includes main memory 515, such as a random access memory (RAM) orother dynamic storage device, coupled to the bus 505 for storinginformation, and instructions to be executed by the processor 510. Themain memory 515 can be or include the data repository 124. The mainmemory 515 can also be used for storing position information, temporaryvariables, or other intermediate information during execution ofinstructions by the processor 510. The computing system 500 may furtherinclude a read-only memory (ROM) 520 or other static storage devicecoupled to the bus 505 for storing static information and instructionsfor the processor 510. A storage device 525, such as a solid-statedevice, magnetic disk or optical disk, can be coupled to the bus 505 topersistently store information and instructions. The storage device 525can include or be part of the data repository 124.

The computing system 500 may be coupled via the bus 505 to a display535, such as a liquid crystal display, or active matrix display, fordisplaying information to a user. An input device 530, such as akeyboard including alphanumeric and other keys, may be coupled to thebus 505 for communicating information and command selections to theprocessor 510. The input device 530 can include a touch screen display535. The input device 530 can also include a cursor control, such as amouse, a trackball, or cursor direction keys, for communicatingdirection information and command selections to the processor 510 andfor controlling cursor movement on the display 535. The display 535 canbe part of the data processing system 102, the client computing device104 or other component of FIG. 1, for example.

The processes, systems and methods described herein can be implementedby the computing system 500 in response to the processor 510 executingan arrangement of instructions contained in main memory 515. Suchinstructions can be read into main memory 515 from anothercomputer-readable medium, such as the storage device 525. Execution ofthe arrangement of instructions contained in main memory 515 causes thecomputing system 500 to perform the illustrative processes describedherein. One or more processors in a multi-processing arrangement mayalso be employed to execute the instructions contained in main memory515. Hard-wired circuitry can be used in place of or in combination withsoftware instructions together with the systems and methods describedherein. Systems and methods described herein are not limited to anyspecific combination of hardware circuitry and software.

Although an example computing system has been described in FIG. 5, thesubject matter including the operations described in this specificationcan be implemented in other types of digital electronic circuitry, or incomputer software, firmware, or hardware, including the structuresdisclosed in this specification and their structural equivalents, or incombinations of one or more of them.

For situations in which the systems discussed herein collect personalinformation about users, or may make use of personal information, theusers may be provided with an opportunity to control whether programs orfeatures that may collect personal information (e.g., information abouta user's social network, social actions or activities, a user'spreferences, or a user's location), or to control whether or how toreceive content from a content server or other data processing systemthat may be more relevant to the user. In addition, certain data may beanonymized in one or more ways before it is stored or used, so thatpersonally identifiable information is removed when generatingparameters. For example, a user's identity may be anonymized so that nopersonally identifiable information can be determined for the user, or auser's geographic location may be generalized where location informationis obtained (such as to a city, postal code, or state level), so that aparticular location of a user cannot be determined. Thus, the user mayhave control over how information is collected about him or her and usedby the content server.

The subject matter and the operations described in this specificationcan be implemented in digital electronic circuitry, or in computersoftware, firmware, or hardware, including the structures disclosed inthis specification and their structural equivalents, or in combinationsof one or more of them. The subject matter described in thisspecification can be implemented as one or more computer programs, e.g.,one or more circuits of computer program instructions, encoded on one ormore computer storage media for execution by, or to control theoperation of, data processing apparatuses. Alternatively, or inaddition, the program instructions can be encoded on an artificiallygenerated propagated signal, e.g., a machine-generated electrical,optical, or electromagnetic signal that is generated to encodeinformation for transmission to suitable receiver apparatus forexecution by a data processing apparatus. A computer storage medium canbe, or be included in, a computer-readable storage device, acomputer-readable storage substrate, a random or serial access memoryarray or device, or a combination of one or more of them. While acomputer storage medium is not a propagated signal, a computer storagemedium can be a source or destination of computer program instructionsencoded in an artificially generated propagated signal. The computerstorage medium can also be, or be included in, one or more separatecomponents or media (e.g., multiple CDs, disks, or other storagedevices). The operations described in this specification can beimplemented as operations performed by a data processing apparatus ondata stored on one or more computer-readable storage devices or receivedfrom other sources.

The terms “data processing system” “computing device” “component” or“data processing apparatus” encompass various apparatuses, devices, andmachines for processing data, including by way of example a programmableprocessor, a computer, a system on a chip, or multiple ones, orcombinations of the foregoing. The apparatus can include special purposelogic circuitry, e.g., an FPGA (field programmable gate array) or anASIC (application specific integrated circuit). The apparatus can alsoinclude, in addition to hardware, code that creates an executionenvironment for the computer program in question, e.g., code thatconstitutes processor firmware, a protocol stack, a database managementsystem, an operating system, a cross-platform runtime environment, avirtual machine, or a combination of one or more of them. The apparatusand execution environment can realize various different computing modelinfrastructures, such as web services, distributed computing and gridcomputing infrastructures. For example, the interface 110, digitalcomponent selector 120, NLP component 114, annotation component 135,parsing component 116, and other data processing system components caninclude or share one or more data processing apparatuses, systems,computing devices, or processors.

A computer program (also known as a program, software, softwareapplication, app, script, or code) can be written in any form ofprogramming language, including compiled or interpreted languages,declarative or procedural languages, and can be deployed in any form,including as a stand-alone program or as a module, component,subroutine, object, or other unit suitable for use in a computingenvironment. A computer program can correspond to a file in a filesystem. A computer program can be stored in a portion of a file thatholds other programs or data (e.g., one or more scripts stored in amarkup language document), in a single file dedicated to the program inquestion, or in multiple coordinated files (e.g., files that store oneor more modules, sub programs, or portions of code). A computer programcan be deployed to be executed on one computer or on multiple computersthat are located at one site or distributed across multiple sites andinterconnected by a communication network.

The processes and logic flows described in this specification can beperformed by one or more programmable processors executing one or morecomputer programs (e.g., components of the data processing system 102)to perform actions by operating on input data and generating output. Theprocesses and logic flows can also be performed by, and apparatuses canalso be implemented as, special purpose logic circuitry, e.g., an FPGA(field programmable gate array) or an ASIC (application specificintegrated circuit). Devices suitable for storing computer programinstructions and data include all forms of non-volatile memory, mediaand memory devices, including by way of example semiconductor memorydevices, e.g., EPROM, EEPROM, and flash memory devices; magnetic disks,e.g., internal hard disks or removable disks; magneto optical disks; andCD ROM and DVD-ROM disks. The processor and the memory can besupplemented by, or incorporated in, special purpose logic circuitry.

The subject matter described herein can be implemented in a computingsystem that includes a back end component, e.g., as a data server, orthat includes a middleware component, e.g., an application server, orthat includes a front end component, e.g., a client computer having agraphical user interface or a web browser through which a user caninteract with an implementation of the subject matter described in thisspecification, or a combination of one or more such back end,middleware, or front end components. The components of the system can beinterconnected by any form or medium of digital data communication,e.g., a communication network. Examples of communication networksinclude a local area network (“LAN”) and a wide area network (“WAN”), aninter-network (e.g., the Internet), and peer-to-peer networks (e.g., adhoc peer-to-peer networks).

The computing system such as system 100 or system 500 can includeclients and servers. A client and server are generally remote from eachother and typically interact through a communication network (e.g., thenetwork 105). The relationship of client and server arises by virtue ofcomputer programs running on the respective computers and having aclient-server relationship to each other. In some implementations, aserver transmits data (e.g., data packets representing a digitalcomponent) to a client device (e.g., for purposes of displaying data toand receiving user input from a user interacting with the clientdevice). Data generated at the client device (e.g., a result of the userinteraction) can be received from the client device at the server (e.g.,received by the data processing system 102 from the client computingdevice 104 or the digital component provider device 106).

While operations are depicted in the drawings in a particular order,such operations are not required to be performed in the particular ordershown or in sequential order, and all illustrated operations are notrequired to be performed. Actions described herein can be performed in adifferent order.

The separation of various system components does not require separationin all implementations, and the described program components can beincluded in a single hardware or software product. For example, the NLPcomponent 114 or the digital component selector 120, can be a singlecomponent, app, or program, or a logic device having one or moreprocessing circuits, or part of one or more servers of the dataprocessing system 102.

Having now described some illustrative implementations, it is apparentthat the foregoing is illustrative and not limiting, having beenpresented by way of example. In particular, although many of theexamples presented herein involve specific combinations of method actsor system elements, those acts and those elements may be combined inother ways to accomplish the same objectives. Acts, elements andfeatures discussed in connection with one implementation are notintended to be excluded from a similar role in other implementations orimplementations.

The phraseology and terminology used herein is for the purpose ofdescription and should not be regarded as limiting. The use of“including” “comprising” “having” “containing” “involving”“characterized by” “characterized in that” and variations thereofherein, is meant to encompass the items listed thereafter, equivalentsthereof, and additional items, as well as alternate implementationsconsisting of the items listed thereafter exclusively. In oneimplementation, the systems and methods described herein consist of one,each combination of more than one, or all of the described elements,acts, or components.

Any references to implementations or elements or acts of the systems andmethods herein referred to in the singular may also embraceimplementations including a plurality of these elements, and anyreferences in plural to any implementation or element or act herein mayalso embrace implementations including only a single element. Referencesin the singular or plural form are not intended to limit the presentlydisclosed systems or methods, their components, acts, or elements tosingle or plural configurations. References to any act or element beingbased on any information, act or element may include implementationswhere the act or element is based at least in part on any information,act, or element.

Any implementation disclosed herein may be combined with any otherimplementation or embodiment, and references to “an implementation,”“some implementations,” “one implementation” or the like are notnecessarily mutually exclusive and are intended to indicate that aparticular feature, structure, or characteristic described in connectionwith the implementation may be included in at least one implementationor embodiment. Such terms as used herein are not necessarily allreferring to the same implementation. Any implementation may be combinedwith any other implementation, inclusively or exclusively, in any mannerconsistent with the aspects and implementations disclosed herein.

References to “or” may be construed as inclusive so that any termsdescribed using “or” may indicate any of a single, more than one, andall the described terms. For example, a reference to “at least one of‘A’ and ‘B’” can include only ‘A’, only ‘B’, as well as both ‘A’ and‘B’. Such references used in conjunction with “comprising” or other openterminology can include additional items.

Where technical features in the drawings, detailed description or anyclaim are followed by reference signs, the reference signs have beenincluded to increase the intelligibility of the drawings, detaileddescription, and claims. Accordingly, neither the reference signs northeir absence has any limiting effect on the scope of any claimelements.

The systems and methods described herein may be embodied in otherspecific forms without departing from the characteristics thereof. Forexample, the computing device 104 can generate the packaged data objectand forward it to the third-party application when launching theapplication. The foregoing implementations are illustrative rather thanlimiting of the described systems and methods. Scope of the systems andmethods described herein is thus indicated by the appended claims,rather than the foregoing description, and changes that come within themeaning and range of equivalency of the claims are embraced therein.

What is claimed:
 1. A system to control digital components in avoice-activated system, comprising: a data processing system comprisingone or more processors and a memory, the one or more processorsexecuting a natural language processor component, an annotationcomponent, and a parsing component to: receive, by the natural languageprocessor component and via interface of the data processing system, afirst input audio signal detected by a sensor at a client computingdevice; parse, by the natural language processor component, the firstinput audio signal to identify a digital component request in the firstinput audio signal, the digital component request indicating a firstdigital component; generate, by the annotation component, a first set ofannotations of the first digital component based at least on speechrecognized in the first digital component; identify, by the parsingcomponent, a plurality of break points based on at least the first setof annotations; receive, by natural language processor component, asecond input audio signal detected by the sensor at the client computingdevice; parse, by the natural language processor component, the secondinput audio signal to identify a term in the second input audio signal;select, by the parsing component, a break point from the plurality ofbreak points based on the term; and transmit, by the parsing componentto the client computing device, a portion of the first digital componentcorresponding to the break point.
 2. The system of claim 1, comprising acontent selecting component to: select a second digital component basedon the break point selected from the plurality of break points; andtransmit the second digital component to the client computing devicewith the portion of the first digital component corresponding to thebreak point.
 3. The system of claim 1, comprising: the annotationcomponent to generate a second set of annotations of the first digitalcomponent based on images in the digital component; and the parsingcomponent to identify the plurality of break points based on the secondset of annotations.
 4. The system of claim 1, comprising: the annotationcomponent to generate the second set of annotations of the first digitalcomponent based on closed captioning data in the digital component. 5.The system of claim 1, comprising: the annotation component to receive asecond set of annotations of the first digital component from a secondclient computing device; and the parsing component to identify theplurality of break points based on the second set of annotations.
 6. Thesystem of claim 1, comprising the parsing component to: identify a scenetransition in the digital component; and identify the plurality of breakpoints based on the scene transition.
 7. The system of claim 1,comprising: the natural language processor component to: receive a thirdinput audio signal detected by the sensor at the client computingdevice; parse the third input audio signal to identify an indication ofa second break point of the plurality of break points; and the parsingcomponent to transmit, to the client computing device, a second portionof the first digital component corresponding to the second break point.8. The system of claim 1, comprising: the natural language processorcomponent to parse the first input audio signal to identify a firstsemantic representation in the first input audio signal; and the parsingcomponent to select the break point from the plurality of break pointsbased on the first semantic meaning.
 9. The system of claim 1,comprising the parsing component to: generate a plurality of portions ofthe first digital component based on the plurality of break points; anddetermine a semantic representation for each of the plurality ofportions of the first digital component.
 10. The system of claim 9,comprising: the annotation component to generate a second set ofannotations of the first digital component based on the semanticrepresentation for each of the plurality of portions of the firstdigital component; and the parsing component to identify the pluralityof break points based on the second set of annotations.
 11. The systemof claim 1, wherein each of the plurality of break points corresponds tothe start of a different scene.
 12. The system of claim 1, comprisingthe parsing component to: generate a second digital component comprisingan indication of each of the plurality of break points; and transmit thesecond digital component to the client computing device for presentationwith the portion of the first digital component corresponding to thebreak point.
 13. The system of claim 12, comprising: the naturallanguage processor component to receive from the client computingdevice, a third input audio signal comprising a selection of one of theplurality of break points; and the parsing component to select the breakpoint from the plurality of break points based on the selection of oneof the plurality of break points.
 14. A method to control digitalcomponents in a voice-activated system, comprising: receiving, by anatural language processor component executed by a data processingsystem and via an interface of the data processing system, a first inputaudio signal detected by a sensor at a client computing device; parsing,by the natural language processor component, the first input audiosignal to identify a digital component request in the first input audiosignal, the digital component request indicating a first digitalcomponent; generating, by an annotation component executed by the dataprocessing system, a first set of annotations of the first digitalcomponent based at least on speech recognized in the first digitalcomponent; identifying, by a parsing component executed by the dataprocessing system, a plurality of break points based on at least thefirst set of annotations; receiving, by natural language processorcomponent, a second input audio signal detected by the sensor at theclient computing device; parsing, by the natural language processorcomponent, the second input audio signal to identify a term in thesecond input audio signal; selecting, by the parsing component, a breakpoint from the plurality of break points based on the term; andtransmitting, by the parsing component to the client computing device, aportion of the first digital component corresponding to the break point.15. The method of claim 14, comprising: selecting, by a contentselection component executed by the data processing system, a seconddigital component based on the break point selected from the pluralityof break points; and transmitting, by the content selection component,the second digital component to the client computing device with theportion of the first digital component corresponding to the break point.16. The method of claim 14, comprising: generating, by the annotationcomponent, a second set of annotations of the first digital componentbased on images in the digital component; and identifying, by theparsing component, the plurality of break points based on the second setof annotations.
 17. The method of claim 14, comprising: receiving, bythe annotation component, a second set of annotations of the firstdigital component from a second client computing device; andidentifying, by the parsing component, the plurality of break pointsbased on the second set of annotations.
 18. The method of claim 14,comprising: receiving, by the natural language processor component, athird input audio signal detected by the sensor at the client computingdevice; parsing, by the natural language processor component, the thirdinput audio signal to identify an indication of a second break point ofthe plurality of break points; and transmitting, by the parsingcomponent to the client computing device, a second portion of the firstdigital component corresponding to the second break point.
 19. Themethod of claim 14, comprising: parsing, by the natural languageprocessor component, the first input audio signal to identify a firstsemantic representation in the first input audio signal; and selecting,by the parsing component, the break point from the plurality of breakpoints based on the first semantic meaning.
 20. The method of claim 14,comprising: generating, by the parsing component, a second digitalcomponent comprising an indication of each of the plurality of breakpoints; transmitting, by the parsing component, the second digitalcomponent to the client computing device for presentation with theportion of the first digital component corresponding to the break point;receiving, by the natural language processor component from the clientcomputing device, a third input audio signal comprising a selection ofone of the plurality of break points; and selecting, by the parsingcomponent, the break point from the plurality of break points based onthe selection of one of the plurality of break points.